﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Entities.IRepository;
using BLToolkit.Data;
using BLToolkit.Data.Linq;
using Entities;

namespace DAL.Admin
{
   public class BLTNhanVienRepository:ConnectionStringBL,INhanVienRepository
    {
       //private DbManager db = new DbManager("QuanLiBongDa");



 


       

       public bool ThemNhanVien(NhanVien bp)
       {
           try
           {
               int kq=db.Insert(bp);
               db.CommitTransaction();
               return kq > 0;

           }
           catch (Exception)
           {

               db.RollbackTransaction();
               return false;
           }
       }

       public bool CapNhatNhanVien(NhanVien bp)
       {
           try
           {
               int kq = db.Update(bp);
               db.CommitTransaction();
               return kq > 0;

           }
           catch (Exception)
           {

               db.RollbackTransaction();
               return false;
           }
       }

       public bool XoaNhanVien(NhanVien bp)
       {
           try
           {
               int kq = db.Delete(bp);
               db.CommitTransaction();
               return kq > 0;

           }
           catch (Exception)
           {

               db.RollbackTransaction();
               return false;
           }
       }

       public NhanVien LayTheoId(string id)
       {
           return db.GetTable<NhanVien>().SingleOrDefault(x => x.MaNhanVien == id);
       }

       public NhanVien LayChiTietTheoId(string id)
       {
           NhanVien nv = LayTheoId(id);
           if (nv != null)
           {
               nv.BoPhans = db.GetTable<BoPhan>().SingleOrDefault(x => x.MaBoPhan == nv.MaBoPhan);
           }
           return nv;
       }

       public List<NhanVien> LayTatCa()
       {
         return  db.GetTable<NhanVien>().ToList();
       }

       public List<NhanVien> LayTheoIdBoPhan(string idcv)
       {
           return db.GetTable<NhanVien>().
               Where(x => x.MaBoPhan == idcv)
               .ToList();
       }

       public int LayPhanQuyen(string id)
       {
           NhanVien nv = LayChiTietTheoId(id);
           if (nv != null)
               return nv.BoPhans.PhanQuyen;
           return -1;
       }


       public List<NhanVien> LayTheoTen(string tennv)
       {
          return db.GetTable<NhanVien>().Where(x => x.TenNhanVien == tennv).ToList();
       }
    }
}
